package pers.mihao.quickstream.common.task.dto;

import lombok.Data;
import pers.mihao.quickstream.common.task.domain.scheduler.AutomaticTaskTimer;

/**
 * @author mihao
 * @since 2024/11/14
 */
@Data
public abstract class BaseAutomaticTaskDTO<T extends JobParams> {

    /**
     * 唯一键ID
     */
    private UniqueBizInfo uniqueBizInfo;

    /**
     * 任务定时执行方式
     */
    private AutomaticTaskTimer automaticTaskTimer;

    /**
     * 任务执行参数
     */
    private T jobParams;

    /**
     * 优先级
     */
    private Integer priority = 0;

    /**
     * 任务失败后的原地重试次数
     */
    private Integer retryCount = 0;

    /**
     * 任务的最大执行时间限制（秒）
     */
    private Integer timeLimit = -1;

}
